package golf.stockinfo.buysellsimulation;

import golf.stockinfo.buysellsimulation.util.DateUtil;

import java.io.Serializable;
import java.sql.Date;

public class SimulationData  implements Serializable{
	
	/**
	 * 
	 */
	private static final long serialVersionUID = -7438898294217815100L;

	public enum TransactionType{
		SHORT_TEFX, LONG_TFEX, BUY_SET50
	}
	
	private TransactionType typeOfTransaction;
	private Date startDate;
	private double startIndex;
	private Date endDate;
	private double endIndex;
	private Date cutLossDate;
	private double cutLossAmount;
	private int numberOfTFEXContract;
	private double maximumPointLossForPeriod;
	private double maximumPointGainForPeriod;
	private double balance;
	private double numberOfForexLot;
	private boolean takeProfit;
	
	public SimulationData(){
		startDate = DateUtil.ZERO_DATE;
		startIndex = 0.0f;
		endDate = DateUtil.ZERO_DATE;
		endIndex = 0.0f;
		cutLossDate = DateUtil.ZERO_DATE;
		cutLossAmount = 0.0f;
		maximumPointLossForPeriod = -0.001;
		numberOfTFEXContract = 0;
		balance=0;
		numberOfForexLot = 0;
		maximumPointGainForPeriod = 0.0;
		takeProfit = false;
	}

	public TransactionType getTypeOfTransaction() {
		return typeOfTransaction;
	}

	public void setTypeOfTransaction(TransactionType typeOfTransaction) {
		this.typeOfTransaction = typeOfTransaction;
	}

	public Date getStartDate() {
		return startDate;
	}

	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	public float getStartIndex() {
		return (float) startIndex;
	}

	public double getStartIndex_asDouble() {
		return startIndex;
	}

	public void setStartIndex(double startIndex) {
		this.startIndex = startIndex;
	}

	public Date getEndDate() {
		return endDate;
	}

	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	public float getEndIndex() {
		return (float) endIndex;
	}

	public double getEndIndex_asDouble() {
		return endIndex;
	}

	public void setEndIndex(double endIndex) {
		this.endIndex = endIndex;
	}

	public float getMaximumPointLossForPeriod() {
		return (float) maximumPointLossForPeriod;
	}

	public double getMaximumPointLossForPeriod_asDouble() {
		return  maximumPointLossForPeriod;
	}

	public void setMaximumPointLossForPeriod(double maximumPointLossForPeriod) {
		this.maximumPointLossForPeriod = maximumPointLossForPeriod;
	}

	public Date getCutLossDate() {
		return cutLossDate;
	}

	public void setCutLossDate(Date cutLossDate) {
		this.cutLossDate = cutLossDate;
	}

	public float getCutLossAmount() {
		return (float) cutLossAmount;
	}

	public double getCutLossAmount_asDouble() {
		return cutLossAmount;
	}

	public void setCutLossAmount(double cutLossAmount) {
		this.cutLossAmount = cutLossAmount;
	}

	public int getNumberOfTFEXContract() {
		return numberOfTFEXContract;
	}

	public void setNumberOfTFEXContract(int numberOfTFEXContract) {
		this.numberOfTFEXContract = numberOfTFEXContract;
	}

	public float getBalance() {
		return (float) balance;
	}

	public double getBalance_asDouble() {
		return balance;
	}

	public void setBalance(double balance) {
		this.balance = balance;
	}

	public float getNumberOfForexLot() {
		return (float) numberOfForexLot;
	}

	public double getNumberOfForexLot_asDouble() {
		return numberOfForexLot;
	}

	public void setNumberOfForexLot(double numberOfForexLot) {
		this.numberOfForexLot = numberOfForexLot;
	}

	public float getMaximumPointGainForPeriod() {
		return (float) maximumPointGainForPeriod;
	}

	public double getMaximumPointGainForPeriod_asDouble() {
		return maximumPointGainForPeriod;
	}

	public void setMaximumPointGainForPeriod(double maximumPointGainForPeriod) {
		this.maximumPointGainForPeriod = maximumPointGainForPeriod;
	}

	public boolean isTakeProfit() {
		return takeProfit;
	}

	public void setTakeProfit(boolean takeProfit) {
		this.takeProfit = takeProfit;
	}

}
